package com.qhw.ReflectClassAndMethod;

import java.lang.reflect.Method;

public class AppQinHongWei {
    public static void main(String [] args) throws Exception{
        //  String s = RandomStringUtils
        System.out.println("hello ");

        // randomNumeric：随机生成指定位数的数字
        // randomAlphabetic：随机生成指定位数的字母
        // String s = RandomStringUtils.randomAlphabetic(6);
        // System.out.println(s);

        User user = new User();
        user.setName("QHW");
        System.out.println(user.getName());
        user.setAge(20);
        System.out.println(user.getAge());

        //类的完整限定名 = 类的包名 +类名
        //通过类的完整限定名来加载某个类对象
        //得到的这个 WW 相当于 User 的类
        Class<?> WW = Class.forName("com.qhw.ReflectClassAndMethod.User");
        //
        //快捷键 ctrl +alt +v 自动补全等号左边
        Object o = WW.newInstance();
       //反射方法时，若方法具有返回类型，那么反射时就需要带上方法返回类型
        Method setName = WW.getMethod("setName", String.class);
        Method getName = WW.getMethod("getName");
        Method setAge = WW.getMethod("setAge", Integer.class);
        Method getAge = WW.getMethod("getAge");

        setName.invoke(o,"jenkins");
        Object result = getName.invoke(o);
        setAge.invoke(o,21);
        Object result1 = getAge.invoke(o);

        System.out.println(result);
        System.out.println(result1);
    }

}
